package com.tfjybj.itoo.teach.provider.service;

import com.dmsdbj.itoo.tool.base.service.BaseServicePlus;
import com.dmsdbj.itoo.tool.business.ItooResult;
import com.github.pagehelper.PageInfo;
import com.tfjybj.itoo.teach.entity.SchoolCalendarEntity;
import com.tfjybj.itoo.teach.model.SchoolCalendarModel;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;


/**
 * SchoolCalendarService接口
 * schoolCalendar表
 *
 * @author 田成荣
 * @version 2.0.0
 * @since 2.0.0 2018-11-08 19:34:10
 */
public interface SchoolCalendarService extends BaseServicePlus<SchoolCalendarEntity> {
	
	//region 模板生成：模糊查询
	/**
     * 根据事件id模糊查询schoolCalendar
     *
     * @param eventId  事件id
     * @param pageNo   页码
     * @param pageSize 页数
     * @return 模糊查询的schoolCalendar
     * @author 田成荣
     * @since 2.0.0 2018-11-08 19:34:10
     */
    PageInfo<SchoolCalendarEntity> queryByLikeEventId(String eventId, Integer pageNo, Integer pageSize);
	//endregion

    /* **********************************以下为非模板生成的内容********************************* */

    /**
     * 下载模板
     * @param response http回应
     * @return boolean
     * @author 刘雅娟
     * @since 2.0.0 2018年11月16日10:00:07
     */
    boolean downTemplate(HttpServletResponse response);

    /**
     * 批量导入校历信息
     *
     * @param multipartFile 文件
     * @param request       请求
     * @param response      回应
     * @return ItooResult 批量导入的记过
     * @author 刘雅娟
     * @since 2.0.0 2018-10-19 16:43:03
     */
    ItooResult importTemplate(MultipartFile multipartFile, HttpServletRequest request, HttpServletResponse response);

    /**
     * 查询所有校历信息
     * @param pageNo   页码
     * @param pageSize 页数
     * @return  list
     * @author 刘雅娟
     * @since 2.0.0 2018年11月16日19:51:43
     */
    PageInfo<SchoolCalendarEntity> findSchoolCalender(Integer pageNo, Integer pageSize);

    /**
     * 根据年份查询校历信息
     * @param schoolYear
     * @return entity
     * @author 刘雅娟
     * @since 2018年11月17日19:44:18
     */
    List<SchoolCalendarEntity> findByYear(String schoolYear);

    /**
     * 获取一周内校历事件
     * @param currentdate
     * @param weekdate
     * @return list
     */
    List<SchoolCalendarEntity> findCalenderByDate(String currentdate, String weekdate);

    /**
     * 获取选课时间
     * @param chooseClass
     * @return list
     * @author 刘雅娟
     */
    List<SchoolCalendarEntity> findCalenderChooseClass(String chooseClass);
    /**
     * 获取具体校历事件
     * @param termId
     * @param eventId
     * @return list
     * @author 刘雅娟
     */
    SchoolCalendarEntity findCalendarEvent(String termId, String eventId);

    /**
     * 按条件模糊分页查询校历信息
     * @param termId
     * @param roleId
     * @param schoolYear
     * @param pageNo
     * @param pageSize
     * @return
     */
    PageInfo<SchoolCalendarModel> queryCalendarByRoleIdListAndGradList(String termId, String roleId, String schoolYear, Integer pageNo, Integer pageSize);
}
